// 封装分类数据相关的业务代码
import { getCategoryAPI } from '@/apis/category';
import { onMounted, ref } from 'vue';
import { useRoute } from 'vue-router';
import { onBeforeRouteUpdate } from 'vue-router';
export function useCategory () {
  //获取分类数据
  const categoryData = ref({})
  const route = useRoute()
  //根据传入的id实现数据更新，“id= route.params.id”表示无参时就执行默认值，即最开始的执行函数onMounted。
  // 有参就执行最新的参数id
  const getCategory = async (id = route.params.id) => {
    const res = await getCategoryAPI(id)
    categoryData.value = res.result
    // console.log(categoryData);
  }
  onMounted(() => getCategory())

  //目标：路由参数变化时，把分类数据接口重新发送
  onBeforeRouteUpdate((to) => {
    // console.log("路由变化了");
    //存在问题：使用最新的路由参数请求最新的分类数据
    // console.log(to);
    getCategory(to.params.id)
  })
  return {
    categoryData
  }
}